﻿namespace PillBox.Client.Model
{
    using System;
    using PillBox.Client.Framework;

    public class Medication : NotifyObject
    {
        private long _medicineID;
        public long MedicineID
        {
            get { return _medicineID; }
            set
            {
                _medicineID = value;
                RaisePropertyChanged(() => MedicineID);
            }
        }

        private string _name;
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                RaisePropertyChanged(() => Name);
            }
        }

        private string _dosage;
        public string Dosage
        {
            get { return _dosage; }
            set
            {
                _dosage = value;
                RaisePropertyChanged(() => Dosage);
            }
        }

        private DeliveryMethod _deliveryMethod;
        public DeliveryMethod DeliveryMethod
        {
            get { return _deliveryMethod; }
            set
            {
                _deliveryMethod = value;
                RaisePropertyChanged(() => DeliveryMethod);
            }
        }

        private string _frequency;
        public string Frequency
        {
            get { return _frequency; }
            set
            {
                _frequency = value;
                RaisePropertyChanged(() => Frequency);
            }
        }

        private string _imageUri;
        public string ImageUri
        {
            get { return _imageUri; }
            set
            {
                _imageUri = value;
                RaisePropertyChanged(() => ImageUri);
            }
        }
		
		private string _moreInfoUri;
		public string MoreInfoUri
		{
			get { return _moreInfoUri; }
			set 
			{
				_moreInfoUri = value;
				RaisePropertyChanged(() => MoreInfoUri);
			}
		}

        private string _description;
        public string Description
        {
            get { return _description; }
            set
            {
                _description = value;
                RaisePropertyChanged(() => Description);
            }
        }

        private string _expiration;
        public string Expiration
        {
            get { return _expiration; }
            set
            {
                _expiration = value;
                RaisePropertyChanged(() => Expiration);
            }
        }

        private long _prescriberID;
        public long PrescriberID
        {
            get { return _prescriberID; }
            set
            {
                _prescriberID = value;
                RaisePropertyChanged(() => PrescriberID);
            }
        }

        private Person _prescriber;
        public Person Prescriber
        {
            get { return _prescriber; }
            set
            {
                _prescriber = value;
                RaisePropertyChanged(() => Prescriber);
            }
        }

        private long _personID;
        public long PersonID
        {
            get { return _personID; }
            set
            {
                _personID = value;
                RaisePropertyChanged(() => PersonID);
            }
        }

        private Person _person;
        public Person Person
        {
            get { return _person; }
            set
            {
                _person = value;
                RaisePropertyChanged(() => Person);
            }
        }
    }

    public enum DeliveryMethod
    {
        Mouth,
        Skin,
        Rectal
    }
}